﻿using System;
using System.Windows.Forms;
using WorkFlowBLL;

namespace QLCF.Forms
{
    public partial class frmCategory1 : Form
    {
        public int m_categoryID = -1;
        public Boolean isAddNew = false;
        private Boolean isLoading = true;
        public int permission = 0;

        public frmCategory1()
        {
            this.isLoading = false;
            InitializeComponent();
            BindData();
        }

        public void BindData()
        {
            lstViewCategory.Items.Clear();
            CtrCategory ctrCategory = new CtrCategory();            
            var objCate = ctrCategory.GetListCategory(-1);
            int i = 1;
            foreach (var item in objCate)
            {
                ListViewItem lstItem = new ListViewItem((i++).ToString());
                lstItem.SubItems.Add(item.CategoryName);
                lstItem.SubItems.Add(item.StatusName);
                lstItem.SubItems.Add(item.Order.ToString());
                lstItem.Tag = item.CategoryID;
                lstViewCategory.Items.Add(lstItem);
            }        
        }

        private void tsbAdd_Click(object sender, EventArgs e)
        {
            this.isAddNew = true;
            popupCategoryDetail popupDistributeDetail = new Forms.popupCategoryDetail(this);
            popupDistributeDetail.ShowDialog();
            popupDistributeDetail.Dispose();
        }

        private void tsbEdit_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.isLoading) return;
                this.isAddNew = false;
                this.m_categoryID = Convert.ToInt32(lstViewCategory.SelectedItems[0].Tag);
                popupCategoryDetail popupCategoryDetail = new popupCategoryDetail(this);
                popupCategoryDetail.ShowDialog();
                popupCategoryDetail.m_categoryID = this.m_categoryID;
            }
            catch (Exception loi)
            {
                MessageBox.Show(loi.Message.ToString());
            }
        }

        private void tsbDelete_Click(object sender, EventArgs e)
        {
            if (lstViewCategory.SelectedItems.Count <= 0)
            {
                MessageBox.Show("Bạn chưa chọn chuyên mục cần xóa!", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            this.m_categoryID = Convert.ToInt32(lstViewCategory.SelectedItems[0].Tag);
            if (MessageBox.Show("Có đồng ý xoá bản ghi này không?", "Thông báo...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
            CtrCategory ctrCategory = new CtrCategory();
            var objCate = ctrCategory.DeleteCategoryID(this.m_categoryID);
            if (objCate > 0)
            {
                CtrAdmin ctra = new CtrAdmin();
                ctra.LogInsert(Program.UserEntity.UserID, Program.UserEntity.UserName, 3, "Xóa chuyên mục \"" + lstViewCategory.SelectedItems[0].Text + "\" có mã \"" + objCate + "\"", "Quản lý danh mục");
                MessageBox.Show("Xóa danh mục thành công!", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.BindData();
            }
            else
            {
                MessageBox.Show("Đang tồn tại sản phẩm cho chuyên mục này!", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }

        private void tsbClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
